{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Applications/anaconda/lib/python2.7/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
      "  \"This module will be removed in 0.20.\", DeprecationWarning)\n",
      "/Applications/anaconda/lib/python2.7/site-packages/sklearn/grid_search.py:43: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. This module will be removed in 0.20.\n",
      "  DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "# Setup\n",
    "# Imports\n",
    "from matplotlib import pyplot as plt\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.cross_validation import ShuffleSplit\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.cross_validation import StratifiedKFold\n",
    "from sklearn.grid_search import GridSearchCV\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.metrics import roc_curve, auc\n",
    "from sklearn import metrics as mt\n",
    "from sklearn.svm import SVC\n",
    "\n",
    "from sklearn.pipeline import FeatureUnion\n",
    "from sklearn.feature_selection import SelectKBest\n",
    "\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "from sklearn import cross_validation\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "from sklearn.naive_bayes import GaussianNB\n",
    "\n",
    "from sklearn.decomposition import RandomizedPCA \n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn import preprocessing\n",
    "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA\n",
    "\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn import metrics as mt\n",
    "\n",
    "import seaborn as sns\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "duplicate record deleted successfully: 82328 observations remaining\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 82328 entries, 0 to 82331\n",
      "Data columns (total 6 columns):\n",
      "sttl                82328 non-null int64\n",
      "ct_dst_sport_ltm    82328 non-null int64\n",
      "ct_src_dport_ltm    82328 non-null int64\n",
      "swin                82328 non-null int64\n",
      "dwin                82328 non-null int64\n",
      "label               82328 non-null int64\n",
      "dtypes: int64(6)\n",
      "memory usage: 4.4 MB\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sttl</th>\n",
       "      <th>ct_dst_sport_ltm</th>\n",
       "      <th>ct_src_dport_ltm</th>\n",
       "      <th>swin</th>\n",
       "      <th>dwin</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>180.973448</td>\n",
       "      <td>3.663092</td>\n",
       "      <td>4.929040</td>\n",
       "      <td>133.453175</td>\n",
       "      <td>128.280464</td>\n",
       "      <td>0.550578</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>101.512436</td>\n",
       "      <td>5.915518</td>\n",
       "      <td>8.389724</td>\n",
       "      <td>127.357276</td>\n",
       "      <td>127.491408</td>\n",
       "      <td>0.497438</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>62.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>254.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>254.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>255.000000</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>59.000000</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               sttl  ct_dst_sport_ltm  ct_src_dport_ltm          swin  \\\n",
       "count  82328.000000      82328.000000      82328.000000  82328.000000   \n",
       "mean     180.973448          3.663092          4.929040    133.453175   \n",
       "std      101.512436          5.915518          8.389724    127.357276   \n",
       "min        0.000000          1.000000          1.000000      0.000000   \n",
       "25%       62.000000          1.000000          1.000000      0.000000   \n",
       "50%      254.000000          1.000000          1.000000    255.000000   \n",
       "75%      254.000000          3.000000          4.000000    255.000000   \n",
       "max      255.000000         38.000000         59.000000    255.000000   \n",
       "\n",
       "               dwin         label  \n",
       "count  82328.000000  82328.000000  \n",
       "mean     128.280464      0.550578  \n",
       "std      127.491408      0.497438  \n",
       "min        0.000000      0.000000  \n",
       "25%        0.000000      0.000000  \n",
       "50%      255.000000      1.000000  \n",
       "75%      255.000000      1.000000  \n",
       "max      255.000000      1.000000  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Load UNSW_NB15 into a Pandas dataframe\n",
    "df = pd.read_csv('UNSW_NB15_training_set.csv', encoding='utf-8-sig')\n",
    "\n",
    "# Lets remove attributes that are not useful to us during this first analysis pass\n",
    "non_useful_features_list = ['id', 'attack_cat']\n",
    "# id: n internal variable to just ref an obseration. deemed not usefl\n",
    "# attack_cat: first try and just predict the label. \n",
    "#             It will obviously 1:1 correlate with label\n",
    "#             We can circle back and swap it out with label \n",
    "#             to see if we get any better accuracy on an \n",
    "#             on an attack type level\n",
    "for feature in non_useful_features_list:\n",
    "    if feature in df:\n",
    "        df.drop(feature, axis=1, inplace=True)  # Lets drop id as it is an internal variable to just ref an obseratio\n",
    "        \n",
    "# Overwrite the existing dataframe with the new dataframe that does not contain the \n",
    "# four unwanted records and confirm we have 4 less records (shold have 82328 observations)\n",
    "if \"is_ftp_login\" in df:\n",
    "    df = df[df.is_ftp_login != 2]\n",
    "    if len(df) == 82328:\n",
    "        print \"duplicate record deleted successfully: \" + str(len(df)) + \" observations remaining\" \n",
    "# Check to see if non useful features still exist in dataframe, if so, we did something wrong\n",
    "for feature in non_useful_features_list:\n",
    "    if feature in df:\n",
    "        print \"[\" + feature + \"]\" + \"still found, check removal code. (Should not see this)\"      \n",
    "\n",
    "df_five = df[['sttl','ct_dst_sport_ltm', 'ct_src_dport_ltm', 'swin', 'dwin', 'label' ]] \n",
    "\n",
    "df_five.info()\n",
    "df_five.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 82328 entries, 0 to 82331\n",
      "Columns: 191 entries, dur to state_RST\n",
      "dtypes: float64(162), int64(29)\n",
      "memory usage: 120.6 MB\n"
     ]
    }
   ],
   "source": [
    "# One-hot encode our object features:\n",
    "\n",
    "# http://stackoverflow.com/questions/19482970/get-list-from-pandas-dataframe-column-headers\n",
    "# Surrounding code in try/except on case where there are no object type features to one-hot encode\n",
    "try:\n",
    "    tmp_df = df.describe(include=['O'])  # creates a temporary df with just categorical features that are of object type\n",
    "    categorical_object_col_name_list = tmp_df.columns.values.tolist()\n",
    "    for col_name in categorical_object_col_name_list:\n",
    "        #print col_name\n",
    "        tmp_df = pd.get_dummies(df[col_name], prefix=col_name)\n",
    "        df = pd.concat((df,tmp_df), axis=1)\n",
    "        df.drop(col_name, axis=1, inplace=True)  # go ahead and drop original feature as it has now been one-hot encoded\n",
    "except ValueError as e:\n",
    "    print \"Value error({0}): \".format(e)  # Note\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 82328 entries, 0 to 82331\n",
      "Columns: 191 entries, dur to state_RST\n",
      "dtypes: float64(162), int64(29)\n",
      "memory usage: 120.6 MB\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 82328 entries, 0 to 82331\n",
      "Columns: 190 entries, dur to state_RST\n",
      "dtypes: float64(162), int64(28)\n",
      "memory usage: 120.0 MB\n"
     ]
    }
   ],
   "source": [
    "# Go ahead and drop both 'label' \n",
    "dfcopy = df.copy(deep=True) # preserve original dataframe that has our dependent variable\n",
    "dfcopy.info()\n",
    "# we want to predict the X and y data as follows:\n",
    "if 'label' in dfcopy:\n",
    "    y = dfcopy['label'].values # get the labels we want\n",
    "    del dfcopy['label'] # get rid of the class label\n",
    "    X = dfcopy.values # use everything else to predict!\n",
    "dfcopy.info() # should have 190 entries\n",
    "    # X and y are now numpy matrices, by calling 'values' on the pandas data frames we\n",
    "    # have converted them into simple matrices to use with scikit learn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>dur</th>\n",
       "      <th>spkts</th>\n",
       "      <th>dpkts</th>\n",
       "      <th>sbytes</th>\n",
       "      <th>dbytes</th>\n",
       "      <th>rate</th>\n",
       "      <th>sttl</th>\n",
       "      <th>dttl</th>\n",
       "      <th>sload</th>\n",
       "      <th>dload</th>\n",
       "      <th>sloss</th>\n",
       "      <th>dloss</th>\n",
       "      <th>sinpkt</th>\n",
       "      <th>dinpkt</th>\n",
       "      <th>sjit</th>\n",
       "      <th>djit</th>\n",
       "      <th>swin</th>\n",
       "      <th>stcpb</th>\n",
       "      <th>dtcpb</th>\n",
       "      <th>dwin</th>\n",
       "      <th>tcprtt</th>\n",
       "      <th>synack</th>\n",
       "      <th>ackdat</th>\n",
       "      <th>smean</th>\n",
       "      <th>dmean</th>\n",
       "      <th>trans_depth</th>\n",
       "      <th>response_body_len</th>\n",
       "      <th>ct_srv_src</th>\n",
       "      <th>ct_state_ttl</th>\n",
       "      <th>ct_dst_ltm</th>\n",
       "      <th>ct_src_dport_ltm</th>\n",
       "      <th>ct_dst_sport_ltm</th>\n",
       "      <th>ct_dst_src_ltm</th>\n",
       "      <th>is_ftp_login</th>\n",
       "      <th>ct_ftp_cmd</th>\n",
       "      <th>ct_flw_http_mthd</th>\n",
       "      <th>ct_src_ltm</th>\n",
       "      <th>ct_srv_dst</th>\n",
       "      <th>is_sm_ips_ports</th>\n",
       "      <th>proto_3pc</th>\n",
       "      <th>proto_a/n</th>\n",
       "      <th>proto_aes-sp3-d</th>\n",
       "      <th>proto_any</th>\n",
       "      <th>proto_argus</th>\n",
       "      <th>proto_aris</th>\n",
       "      <th>proto_arp</th>\n",
       "      <th>proto_ax.25</th>\n",
       "      <th>proto_bbn-rcc</th>\n",
       "      <th>proto_bna</th>\n",
       "      <th>proto_br-sat-mon</th>\n",
       "      <th>proto_cbt</th>\n",
       "      <th>proto_cftp</th>\n",
       "      <th>proto_chaos</th>\n",
       "      <th>proto_compaq-peer</th>\n",
       "      <th>proto_cphb</th>\n",
       "      <th>proto_cpnx</th>\n",
       "      <th>proto_crtp</th>\n",
       "      <th>proto_crudp</th>\n",
       "      <th>proto_dcn</th>\n",
       "      <th>proto_ddp</th>\n",
       "      <th>proto_ddx</th>\n",
       "      <th>proto_dgp</th>\n",
       "      <th>proto_egp</th>\n",
       "      <th>proto_eigrp</th>\n",
       "      <th>proto_emcon</th>\n",
       "      <th>proto_encap</th>\n",
       "      <th>proto_etherip</th>\n",
       "      <th>proto_fc</th>\n",
       "      <th>proto_fire</th>\n",
       "      <th>proto_ggp</th>\n",
       "      <th>proto_gmtp</th>\n",
       "      <th>proto_gre</th>\n",
       "      <th>proto_hmp</th>\n",
       "      <th>proto_i-nlsp</th>\n",
       "      <th>proto_iatp</th>\n",
       "      <th>proto_ib</th>\n",
       "      <th>proto_idpr</th>\n",
       "      <th>proto_idpr-cmtp</th>\n",
       "      <th>proto_idrp</th>\n",
       "      <th>proto_ifmp</th>\n",
       "      <th>proto_igmp</th>\n",
       "      <th>proto_igp</th>\n",
       "      <th>proto_il</th>\n",
       "      <th>proto_ip</th>\n",
       "      <th>proto_ipcomp</th>\n",
       "      <th>proto_ipcv</th>\n",
       "      <th>proto_ipip</th>\n",
       "      <th>proto_iplt</th>\n",
       "      <th>proto_ipnip</th>\n",
       "      <th>proto_ippc</th>\n",
       "      <th>proto_ipv6</th>\n",
       "      <th>proto_ipv6-frag</th>\n",
       "      <th>proto_ipv6-no</th>\n",
       "      <th>proto_ipv6-opts</th>\n",
       "      <th>proto_ipv6-route</th>\n",
       "      <th>proto_ipx-n-ip</th>\n",
       "      <th>proto_irtp</th>\n",
       "      <th>proto_isis</th>\n",
       "      <th>proto_iso-ip</th>\n",
       "      <th>proto_iso-tp4</th>\n",
       "      <th>proto_kryptolan</th>\n",
       "      <th>proto_l2tp</th>\n",
       "      <th>proto_larp</th>\n",
       "      <th>proto_leaf-1</th>\n",
       "      <th>proto_leaf-2</th>\n",
       "      <th>proto_merit-inp</th>\n",
       "      <th>proto_mfe-nsp</th>\n",
       "      <th>proto_mhrp</th>\n",
       "      <th>proto_micp</th>\n",
       "      <th>proto_mobile</th>\n",
       "      <th>proto_mtp</th>\n",
       "      <th>proto_mux</th>\n",
       "      <th>proto_narp</th>\n",
       "      <th>proto_netblt</th>\n",
       "      <th>proto_nsfnet-igp</th>\n",
       "      <th>proto_nvp</th>\n",
       "      <th>proto_ospf</th>\n",
       "      <th>proto_pgm</th>\n",
       "      <th>proto_pim</th>\n",
       "      <th>proto_pipe</th>\n",
       "      <th>proto_pnni</th>\n",
       "      <th>proto_pri-enc</th>\n",
       "      <th>proto_prm</th>\n",
       "      <th>proto_ptp</th>\n",
       "      <th>proto_pup</th>\n",
       "      <th>proto_pvp</th>\n",
       "      <th>proto_qnx</th>\n",
       "      <th>proto_rdp</th>\n",
       "      <th>proto_rsvp</th>\n",
       "      <th>proto_rvd</th>\n",
       "      <th>proto_sat-expak</th>\n",
       "      <th>proto_sat-mon</th>\n",
       "      <th>proto_sccopmce</th>\n",
       "      <th>proto_scps</th>\n",
       "      <th>proto_sctp</th>\n",
       "      <th>proto_sdrp</th>\n",
       "      <th>proto_secure-vmtp</th>\n",
       "      <th>proto_sep</th>\n",
       "      <th>proto_skip</th>\n",
       "      <th>proto_sm</th>\n",
       "      <th>proto_smp</th>\n",
       "      <th>proto_snp</th>\n",
       "      <th>proto_sprite-rpc</th>\n",
       "      <th>proto_sps</th>\n",
       "      <th>proto_srp</th>\n",
       "      <th>proto_st2</th>\n",
       "      <th>proto_stp</th>\n",
       "      <th>proto_sun-nd</th>\n",
       "      <th>proto_swipe</th>\n",
       "      <th>proto_tcf</th>\n",
       "      <th>proto_tcp</th>\n",
       "      <th>proto_tlsp</th>\n",
       "      <th>proto_tp++</th>\n",
       "      <th>proto_trunk-1</th>\n",
       "      <th>proto_trunk-2</th>\n",
       "      <th>proto_ttp</th>\n",
       "      <th>proto_udp</th>\n",
       "      <th>proto_unas</th>\n",
       "      <th>proto_uti</th>\n",
       "      <th>proto_vines</th>\n",
       "      <th>proto_visa</th>\n",
       "      <th>proto_vmtp</th>\n",
       "      <th>proto_vrrp</th>\n",
       "      <th>proto_wb-expak</th>\n",
       "      <th>proto_wb-mon</th>\n",
       "      <th>proto_wsn</th>\n",
       "      <th>proto_xnet</th>\n",
       "      <th>proto_xns-idp</th>\n",
       "      <th>proto_xtp</th>\n",
       "      <th>proto_zero</th>\n",
       "      <th>service_-</th>\n",
       "      <th>service_dhcp</th>\n",
       "      <th>service_dns</th>\n",
       "      <th>service_ftp</th>\n",
       "      <th>service_ftp-data</th>\n",
       "      <th>service_http</th>\n",
       "      <th>service_irc</th>\n",
       "      <th>service_pop3</th>\n",
       "      <th>service_radius</th>\n",
       "      <th>service_smtp</th>\n",
       "      <th>service_snmp</th>\n",
       "      <th>service_ssh</th>\n",
       "      <th>service_ssl</th>\n",
       "      <th>state_ACC</th>\n",
       "      <th>state_CLO</th>\n",
       "      <th>state_CON</th>\n",
       "      <th>state_FIN</th>\n",
       "      <th>state_INT</th>\n",
       "      <th>state_REQ</th>\n",
       "      <th>state_RST</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>8.232800e+04</td>\n",
       "      <td>8.232800e+04</td>\n",
       "      <td>8.232800e+04</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.00000</td>\n",
       "      <td>8.232800e+04</td>\n",
       "      <td>8.232800e+04</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>8.232800e+04</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>8.232800e+04</td>\n",
       "      <td>8.232800e+04</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>8.232800e+04</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "      <td>82328.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>1.006783</td>\n",
       "      <td>18.666893</td>\n",
       "      <td>17.546303</td>\n",
       "      <td>7.994267e+03</td>\n",
       "      <td>1.323440e+04</td>\n",
       "      <td>8.241489e+04</td>\n",
       "      <td>180.973448</td>\n",
       "      <td>95.70541</td>\n",
       "      <td>6.455215e+07</td>\n",
       "      <td>6.305771e+05</td>\n",
       "      <td>4.753875</td>\n",
       "      <td>6.308716</td>\n",
       "      <td>755.428583</td>\n",
       "      <td>121.705700</td>\n",
       "      <td>6.363381e+03</td>\n",
       "      <td>535.124204</td>\n",
       "      <td>133.453175</td>\n",
       "      <td>1.084687e+09</td>\n",
       "      <td>1.073469e+09</td>\n",
       "      <td>128.280464</td>\n",
       "      <td>0.055928</td>\n",
       "      <td>0.029257</td>\n",
       "      <td>0.026670</td>\n",
       "      <td>139.532468</td>\n",
       "      <td>116.277366</td>\n",
       "      <td>0.094281</td>\n",
       "      <td>1.595449e+03</td>\n",
       "      <td>9.546971</td>\n",
       "      <td>1.369291</td>\n",
       "      <td>5.745008</td>\n",
       "      <td>4.929040</td>\n",
       "      <td>3.663092</td>\n",
       "      <td>7.456528</td>\n",
       "      <td>0.008187</td>\n",
       "      <td>0.008284</td>\n",
       "      <td>0.129749</td>\n",
       "      <td>6.468480</td>\n",
       "      <td>9.164610</td>\n",
       "      <td>0.011126</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.001166</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.011989</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000413</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.001069</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000377</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000364</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000741</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000413</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000632</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.008211</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000632</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000413</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000777</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.003935</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000704</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000656</td>\n",
       "      <td>0.000632</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.523406</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.357327</td>\n",
       "      <td>0.042695</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000401</td>\n",
       "      <td>0.000413</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.000389</td>\n",
       "      <td>0.572746</td>\n",
       "      <td>0.000316</td>\n",
       "      <td>0.259535</td>\n",
       "      <td>0.018803</td>\n",
       "      <td>0.016957</td>\n",
       "      <td>0.100658</td>\n",
       "      <td>0.000061</td>\n",
       "      <td>0.005138</td>\n",
       "      <td>0.000109</td>\n",
       "      <td>0.022483</td>\n",
       "      <td>0.000352</td>\n",
       "      <td>0.002478</td>\n",
       "      <td>0.000364</td>\n",
       "      <td>0.000049</td>\n",
       "      <td>0.000012</td>\n",
       "      <td>0.084807</td>\n",
       "      <td>0.477784</td>\n",
       "      <td>0.414962</td>\n",
       "      <td>0.022374</td>\n",
       "      <td>0.000012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>4.710557</td>\n",
       "      <td>133.919593</td>\n",
       "      <td>115.576881</td>\n",
       "      <td>1.716464e+05</td>\n",
       "      <td>1.514751e+05</td>\n",
       "      <td>1.486229e+05</td>\n",
       "      <td>101.512436</td>\n",
       "      <td>116.66547</td>\n",
       "      <td>1.798656e+08</td>\n",
       "      <td>2.393055e+06</td>\n",
       "      <td>64.651185</td>\n",
       "      <td>55.709370</td>\n",
       "      <td>6182.763970</td>\n",
       "      <td>1292.409739</td>\n",
       "      <td>5.672538e+04</td>\n",
       "      <td>3635.384746</td>\n",
       "      <td>127.357276</td>\n",
       "      <td>1.390879e+09</td>\n",
       "      <td>1.382030e+09</td>\n",
       "      <td>127.491408</td>\n",
       "      <td>0.116024</td>\n",
       "      <td>0.070855</td>\n",
       "      <td>0.055095</td>\n",
       "      <td>208.476391</td>\n",
       "      <td>244.605992</td>\n",
       "      <td>0.542935</td>\n",
       "      <td>3.806790e+04</td>\n",
       "      <td>11.090433</td>\n",
       "      <td>1.067211</td>\n",
       "      <td>8.418308</td>\n",
       "      <td>8.389724</td>\n",
       "      <td>5.915518</td>\n",
       "      <td>11.415443</td>\n",
       "      <td>0.090110</td>\n",
       "      <td>0.091439</td>\n",
       "      <td>0.638697</td>\n",
       "      <td>8.544117</td>\n",
       "      <td>11.121571</td>\n",
       "      <td>0.104893</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.034128</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.108835</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020318</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.032677</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019401</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019086</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.027210</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020318</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.025124</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.090243</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.025124</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020318</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.027871</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.062610</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.026533</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.025603</td>\n",
       "      <td>0.025124</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.499455</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.479215</td>\n",
       "      <td>0.202170</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.020017</td>\n",
       "      <td>0.020318</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.019711</td>\n",
       "      <td>0.494683</td>\n",
       "      <td>0.017768</td>\n",
       "      <td>0.438382</td>\n",
       "      <td>0.135829</td>\n",
       "      <td>0.129109</td>\n",
       "      <td>0.300878</td>\n",
       "      <td>0.007793</td>\n",
       "      <td>0.071496</td>\n",
       "      <td>0.010455</td>\n",
       "      <td>0.148250</td>\n",
       "      <td>0.018765</td>\n",
       "      <td>0.049717</td>\n",
       "      <td>0.019086</td>\n",
       "      <td>0.006970</td>\n",
       "      <td>0.003485</td>\n",
       "      <td>0.278596</td>\n",
       "      <td>0.499509</td>\n",
       "      <td>0.492718</td>\n",
       "      <td>0.147897</td>\n",
       "      <td>0.003485</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.400000e+01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.000008</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.140000e+02</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>2.860585e+01</td>\n",
       "      <td>62.000000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>1.120356e+04</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.008000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>57.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.014120</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>5.340000e+02</td>\n",
       "      <td>1.780000e+02</td>\n",
       "      <td>2.651198e+03</td>\n",
       "      <td>254.000000</td>\n",
       "      <td>29.00000</td>\n",
       "      <td>5.770751e+05</td>\n",
       "      <td>2.112632e+03</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.557511</td>\n",
       "      <td>0.010000</td>\n",
       "      <td>1.762237e+01</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>2.778416e+07</td>\n",
       "      <td>2.830540e+07</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>0.000551</td>\n",
       "      <td>0.000441</td>\n",
       "      <td>0.000081</td>\n",
       "      <td>65.000000</td>\n",
       "      <td>44.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>0.719362</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>1.280000e+03</td>\n",
       "      <td>9.560000e+02</td>\n",
       "      <td>1.111111e+05</td>\n",
       "      <td>254.000000</td>\n",
       "      <td>252.00000</td>\n",
       "      <td>6.514286e+07</td>\n",
       "      <td>1.585818e+04</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>63.413533</td>\n",
       "      <td>63.137235</td>\n",
       "      <td>3.219511e+03</td>\n",
       "      <td>128.455342</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>2.171372e+09</td>\n",
       "      <td>2.144260e+09</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>0.105547</td>\n",
       "      <td>0.052604</td>\n",
       "      <td>0.048820</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>87.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>11.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>11.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>59.999989</td>\n",
       "      <td>10646.000000</td>\n",
       "      <td>11018.000000</td>\n",
       "      <td>1.435577e+07</td>\n",
       "      <td>1.465753e+07</td>\n",
       "      <td>1.000000e+06</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>253.00000</td>\n",
       "      <td>5.268000e+09</td>\n",
       "      <td>2.082111e+07</td>\n",
       "      <td>5319.000000</td>\n",
       "      <td>5507.000000</td>\n",
       "      <td>60009.992000</td>\n",
       "      <td>57739.240000</td>\n",
       "      <td>1.483831e+06</td>\n",
       "      <td>463199.240100</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>4.294950e+09</td>\n",
       "      <td>4.294881e+09</td>\n",
       "      <td>255.000000</td>\n",
       "      <td>3.821465</td>\n",
       "      <td>3.226788</td>\n",
       "      <td>2.928778</td>\n",
       "      <td>1504.000000</td>\n",
       "      <td>1500.000000</td>\n",
       "      <td>131.000000</td>\n",
       "      <td>5.242880e+06</td>\n",
       "      <td>63.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>59.000000</td>\n",
       "      <td>59.000000</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>63.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>16.000000</td>\n",
       "      <td>60.000000</td>\n",
       "      <td>62.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                dur         spkts         dpkts        sbytes        dbytes  \\\n",
       "count  82328.000000  82328.000000  82328.000000  8.232800e+04  8.232800e+04   \n",
       "mean       1.006783     18.666893     17.546303  7.994267e+03  1.323440e+04   \n",
       "std        4.710557    133.919593    115.576881  1.716464e+05  1.514751e+05   \n",
       "min        0.000000      1.000000      0.000000  2.400000e+01  0.000000e+00   \n",
       "25%        0.000008      2.000000      0.000000  1.140000e+02  0.000000e+00   \n",
       "50%        0.014120      6.000000      2.000000  5.340000e+02  1.780000e+02   \n",
       "75%        0.719362     12.000000     10.000000  1.280000e+03  9.560000e+02   \n",
       "max       59.999989  10646.000000  11018.000000  1.435577e+07  1.465753e+07   \n",
       "\n",
       "               rate          sttl         dttl         sload         dload  \\\n",
       "count  8.232800e+04  82328.000000  82328.00000  8.232800e+04  8.232800e+04   \n",
       "mean   8.241489e+04    180.973448     95.70541  6.455215e+07  6.305771e+05   \n",
       "std    1.486229e+05    101.512436    116.66547  1.798656e+08  2.393055e+06   \n",
       "min    0.000000e+00      0.000000      0.00000  0.000000e+00  0.000000e+00   \n",
       "25%    2.860585e+01     62.000000      0.00000  1.120356e+04  0.000000e+00   \n",
       "50%    2.651198e+03    254.000000     29.00000  5.770751e+05  2.112632e+03   \n",
       "75%    1.111111e+05    254.000000    252.00000  6.514286e+07  1.585818e+04   \n",
       "max    1.000000e+06    255.000000    253.00000  5.268000e+09  2.082111e+07   \n",
       "\n",
       "              sloss         dloss        sinpkt        dinpkt          sjit  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  8.232800e+04   \n",
       "mean       4.753875      6.308716    755.428583    121.705700  6.363381e+03   \n",
       "std       64.651185     55.709370   6182.763970   1292.409739  5.672538e+04   \n",
       "min        0.000000      0.000000      0.000000      0.000000  0.000000e+00   \n",
       "25%        0.000000      0.000000      0.008000      0.000000  0.000000e+00   \n",
       "50%        1.000000      0.000000      0.557511      0.010000  1.762237e+01   \n",
       "75%        3.000000      2.000000     63.413533     63.137235  3.219511e+03   \n",
       "max     5319.000000   5507.000000  60009.992000  57739.240000  1.483831e+06   \n",
       "\n",
       "                djit          swin         stcpb         dtcpb          dwin  \\\n",
       "count   82328.000000  82328.000000  8.232800e+04  8.232800e+04  82328.000000   \n",
       "mean      535.124204    133.453175  1.084687e+09  1.073469e+09    128.280464   \n",
       "std      3635.384746    127.357276  1.390879e+09  1.382030e+09    127.491408   \n",
       "min         0.000000      0.000000  0.000000e+00  0.000000e+00      0.000000   \n",
       "25%         0.000000      0.000000  0.000000e+00  0.000000e+00      0.000000   \n",
       "50%         0.000000    255.000000  2.778416e+07  2.830540e+07    255.000000   \n",
       "75%       128.455342    255.000000  2.171372e+09  2.144260e+09    255.000000   \n",
       "max    463199.240100    255.000000  4.294950e+09  4.294881e+09    255.000000   \n",
       "\n",
       "             tcprtt        synack        ackdat         smean         dmean  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.055928      0.029257      0.026670    139.532468    116.277366   \n",
       "std        0.116024      0.070855      0.055095    208.476391    244.605992   \n",
       "min        0.000000      0.000000      0.000000     24.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000     57.000000      0.000000   \n",
       "50%        0.000551      0.000441      0.000081     65.000000     44.000000   \n",
       "75%        0.105547      0.052604      0.048820    100.000000     87.000000   \n",
       "max        3.821465      3.226788      2.928778   1504.000000   1500.000000   \n",
       "\n",
       "        trans_depth  response_body_len    ct_srv_src  ct_state_ttl  \\\n",
       "count  82328.000000       8.232800e+04  82328.000000  82328.000000   \n",
       "mean       0.094281       1.595449e+03      9.546971      1.369291   \n",
       "std        0.542935       3.806790e+04     11.090433      1.067211   \n",
       "min        0.000000       0.000000e+00      1.000000      0.000000   \n",
       "25%        0.000000       0.000000e+00      2.000000      1.000000   \n",
       "50%        0.000000       0.000000e+00      5.000000      1.000000   \n",
       "75%        0.000000       0.000000e+00     11.000000      2.000000   \n",
       "max      131.000000       5.242880e+06     63.000000      6.000000   \n",
       "\n",
       "         ct_dst_ltm  ct_src_dport_ltm  ct_dst_sport_ltm  ct_dst_src_ltm  \\\n",
       "count  82328.000000      82328.000000      82328.000000    82328.000000   \n",
       "mean       5.745008          4.929040          3.663092        7.456528   \n",
       "std        8.418308          8.389724          5.915518       11.415443   \n",
       "min        1.000000          1.000000          1.000000        1.000000   \n",
       "25%        1.000000          1.000000          1.000000        1.000000   \n",
       "50%        2.000000          1.000000          1.000000        3.000000   \n",
       "75%        6.000000          4.000000          3.000000        6.000000   \n",
       "max       59.000000         59.000000         38.000000       63.000000   \n",
       "\n",
       "       is_ftp_login    ct_ftp_cmd  ct_flw_http_mthd    ct_src_ltm  \\\n",
       "count  82328.000000  82328.000000      82328.000000  82328.000000   \n",
       "mean       0.008187      0.008284          0.129749      6.468480   \n",
       "std        0.090110      0.091439          0.638697      8.544117   \n",
       "min        0.000000      0.000000          0.000000      1.000000   \n",
       "25%        0.000000      0.000000          0.000000      1.000000   \n",
       "50%        0.000000      0.000000          0.000000      3.000000   \n",
       "75%        0.000000      0.000000          0.000000      7.000000   \n",
       "max        1.000000      2.000000         16.000000     60.000000   \n",
       "\n",
       "         ct_srv_dst  is_sm_ips_ports     proto_3pc     proto_a/n  \\\n",
       "count  82328.000000     82328.000000  82328.000000  82328.000000   \n",
       "mean       9.164610         0.011126      0.000389      0.000389   \n",
       "std       11.121571         0.104893      0.019711      0.019711   \n",
       "min        1.000000         0.000000      0.000000      0.000000   \n",
       "25%        2.000000         0.000000      0.000000      0.000000   \n",
       "50%        5.000000         0.000000      0.000000      0.000000   \n",
       "75%       11.000000         0.000000      0.000000      0.000000   \n",
       "max       62.000000         1.000000      1.000000      1.000000   \n",
       "\n",
       "       proto_aes-sp3-d     proto_any   proto_argus    proto_aris  \\\n",
       "count     82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean          0.000389      0.001166      0.000401      0.000389   \n",
       "std           0.019711      0.034128      0.020017      0.019711   \n",
       "min           0.000000      0.000000      0.000000      0.000000   \n",
       "25%           0.000000      0.000000      0.000000      0.000000   \n",
       "50%           0.000000      0.000000      0.000000      0.000000   \n",
       "75%           0.000000      0.000000      0.000000      0.000000   \n",
       "max           1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "          proto_arp   proto_ax.25  proto_bbn-rcc     proto_bna  \\\n",
       "count  82328.000000  82328.000000   82328.000000  82328.000000   \n",
       "mean       0.011989      0.000389       0.000413      0.000389   \n",
       "std        0.108835      0.019711       0.020318      0.019711   \n",
       "min        0.000000      0.000000       0.000000      0.000000   \n",
       "25%        0.000000      0.000000       0.000000      0.000000   \n",
       "50%        0.000000      0.000000       0.000000      0.000000   \n",
       "75%        0.000000      0.000000       0.000000      0.000000   \n",
       "max        1.000000      1.000000       1.000000      1.000000   \n",
       "\n",
       "       proto_br-sat-mon     proto_cbt    proto_cftp   proto_chaos  \\\n",
       "count      82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean           0.000389      0.000401      0.000389      0.000401   \n",
       "std            0.019711      0.020017      0.019711      0.020017   \n",
       "min            0.000000      0.000000      0.000000      0.000000   \n",
       "25%            0.000000      0.000000      0.000000      0.000000   \n",
       "50%            0.000000      0.000000      0.000000      0.000000   \n",
       "75%            0.000000      0.000000      0.000000      0.000000   \n",
       "max            1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "       proto_compaq-peer    proto_cphb    proto_cpnx    proto_crtp  \\\n",
       "count       82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean            0.000389      0.000389      0.000389      0.000389   \n",
       "std             0.019711      0.019711      0.019711      0.019711   \n",
       "min             0.000000      0.000000      0.000000      0.000000   \n",
       "25%             0.000000      0.000000      0.000000      0.000000   \n",
       "50%             0.000000      0.000000      0.000000      0.000000   \n",
       "75%             0.000000      0.000000      0.000000      0.000000   \n",
       "max             1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "        proto_crudp     proto_dcn     proto_ddp     proto_ddx     proto_dgp  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000389      0.000401      0.000389      0.000389      0.000389   \n",
       "std        0.019711      0.020017      0.019711      0.019711      0.019711   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "          proto_egp   proto_eigrp   proto_emcon   proto_encap  proto_etherip  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000   82328.000000   \n",
       "mean       0.000401      0.000389      0.000401      0.000389       0.000389   \n",
       "std        0.020017      0.019711      0.020017      0.019711       0.019711   \n",
       "min        0.000000      0.000000      0.000000      0.000000       0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000       0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000       0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000       0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000       1.000000   \n",
       "\n",
       "           proto_fc    proto_fire     proto_ggp    proto_gmtp     proto_gre  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000389      0.000389      0.000401      0.000389      0.001069   \n",
       "std        0.019711      0.019711      0.020017      0.019711      0.032677   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "          proto_hmp  proto_i-nlsp    proto_iatp      proto_ib    proto_idpr  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000401      0.000389      0.000389      0.000377      0.000389   \n",
       "std        0.020017      0.019711      0.019711      0.019401      0.019711   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "       proto_idpr-cmtp    proto_idrp    proto_ifmp    proto_igmp  \\\n",
       "count     82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean          0.000389      0.000389      0.000389      0.000364   \n",
       "std           0.019711      0.019711      0.019711      0.019086   \n",
       "min           0.000000      0.000000      0.000000      0.000000   \n",
       "25%           0.000000      0.000000      0.000000      0.000000   \n",
       "50%           0.000000      0.000000      0.000000      0.000000   \n",
       "75%           0.000000      0.000000      0.000000      0.000000   \n",
       "max           1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "          proto_igp      proto_il      proto_ip  proto_ipcomp    proto_ipcv  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000401      0.000389      0.000401      0.000389      0.000389   \n",
       "std        0.020017      0.019711      0.020017      0.019711      0.019711   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "         proto_ipip    proto_iplt   proto_ipnip    proto_ippc    proto_ipv6  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000389      0.000389      0.000401      0.000389      0.000741   \n",
       "std        0.019711      0.019711      0.020017      0.019711      0.027210   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "       proto_ipv6-frag  proto_ipv6-no  proto_ipv6-opts  proto_ipv6-route  \\\n",
       "count     82328.000000   82328.000000     82328.000000      82328.000000   \n",
       "mean          0.000389       0.000389         0.000389          0.000389   \n",
       "std           0.019711       0.019711         0.019711          0.019711   \n",
       "min           0.000000       0.000000         0.000000          0.000000   \n",
       "25%           0.000000       0.000000         0.000000          0.000000   \n",
       "50%           0.000000       0.000000         0.000000          0.000000   \n",
       "75%           0.000000       0.000000         0.000000          0.000000   \n",
       "max           1.000000       1.000000         1.000000          1.000000   \n",
       "\n",
       "       proto_ipx-n-ip    proto_irtp    proto_isis  proto_iso-ip  \\\n",
       "count    82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean         0.000389      0.000401      0.000389      0.000389   \n",
       "std          0.019711      0.020017      0.019711      0.019711   \n",
       "min          0.000000      0.000000      0.000000      0.000000   \n",
       "25%          0.000000      0.000000      0.000000      0.000000   \n",
       "50%          0.000000      0.000000      0.000000      0.000000   \n",
       "75%          0.000000      0.000000      0.000000      0.000000   \n",
       "max          1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "       proto_iso-tp4  proto_kryptolan    proto_l2tp    proto_larp  \\\n",
       "count   82328.000000     82328.000000  82328.000000  82328.000000   \n",
       "mean        0.000401         0.000389      0.000389      0.000389   \n",
       "std         0.020017         0.019711      0.019711      0.019711   \n",
       "min         0.000000         0.000000      0.000000      0.000000   \n",
       "25%         0.000000         0.000000      0.000000      0.000000   \n",
       "50%         0.000000         0.000000      0.000000      0.000000   \n",
       "75%         0.000000         0.000000      0.000000      0.000000   \n",
       "max         1.000000         1.000000      1.000000      1.000000   \n",
       "\n",
       "       proto_leaf-1  proto_leaf-2  proto_merit-inp  proto_mfe-nsp  \\\n",
       "count  82328.000000  82328.000000     82328.000000   82328.000000   \n",
       "mean       0.000413      0.000401         0.000389       0.000389   \n",
       "std        0.020318      0.020017         0.019711       0.019711   \n",
       "min        0.000000      0.000000         0.000000       0.000000   \n",
       "25%        0.000000      0.000000         0.000000       0.000000   \n",
       "50%        0.000000      0.000000         0.000000       0.000000   \n",
       "75%        0.000000      0.000000         0.000000       0.000000   \n",
       "max        1.000000      1.000000         1.000000       1.000000   \n",
       "\n",
       "         proto_mhrp    proto_micp  proto_mobile     proto_mtp     proto_mux  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000389      0.000389      0.000632      0.000389      0.000401   \n",
       "std        0.019711      0.019711      0.025124      0.019711      0.020017   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "         proto_narp  proto_netblt  proto_nsfnet-igp     proto_nvp  \\\n",
       "count  82328.000000  82328.000000      82328.000000  82328.000000   \n",
       "mean       0.000389      0.000401          0.000389      0.000401   \n",
       "std        0.019711      0.020017          0.019711      0.020017   \n",
       "min        0.000000      0.000000          0.000000      0.000000   \n",
       "25%        0.000000      0.000000          0.000000      0.000000   \n",
       "50%        0.000000      0.000000          0.000000      0.000000   \n",
       "75%        0.000000      0.000000          0.000000      0.000000   \n",
       "max        1.000000      1.000000          1.000000      1.000000   \n",
       "\n",
       "         proto_ospf     proto_pgm     proto_pim    proto_pipe    proto_pnni  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.008211      0.000389      0.000632      0.000389      0.000389   \n",
       "std        0.090243      0.019711      0.025124      0.019711      0.019711   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "       proto_pri-enc     proto_prm     proto_ptp     proto_pup     proto_pvp  \\\n",
       "count   82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean        0.000389      0.000413      0.000389      0.000401      0.000389   \n",
       "std         0.019711      0.020318      0.019711      0.020017      0.019711   \n",
       "min         0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%         0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%         0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%         0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max         1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "          proto_qnx     proto_rdp    proto_rsvp     proto_rvd  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000389      0.000401      0.000777      0.000389   \n",
       "std        0.019711      0.020017      0.027871      0.019711   \n",
       "min        0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "       proto_sat-expak  proto_sat-mon  proto_sccopmce    proto_scps  \\\n",
       "count     82328.000000   82328.000000    82328.000000  82328.000000   \n",
       "mean          0.000389       0.000389        0.000389      0.000389   \n",
       "std           0.019711       0.019711        0.019711      0.019711   \n",
       "min           0.000000       0.000000        0.000000      0.000000   \n",
       "25%           0.000000       0.000000        0.000000      0.000000   \n",
       "50%           0.000000       0.000000        0.000000      0.000000   \n",
       "75%           0.000000       0.000000        0.000000      0.000000   \n",
       "max           1.000000       1.000000        1.000000      1.000000   \n",
       "\n",
       "         proto_sctp    proto_sdrp  proto_secure-vmtp     proto_sep  \\\n",
       "count  82328.000000  82328.000000       82328.000000  82328.000000   \n",
       "mean       0.003935      0.000389           0.000389      0.000704   \n",
       "std        0.062610      0.019711           0.019711      0.026533   \n",
       "min        0.000000      0.000000           0.000000      0.000000   \n",
       "25%        0.000000      0.000000           0.000000      0.000000   \n",
       "50%        0.000000      0.000000           0.000000      0.000000   \n",
       "75%        0.000000      0.000000           0.000000      0.000000   \n",
       "max        1.000000      1.000000           1.000000      1.000000   \n",
       "\n",
       "         proto_skip      proto_sm     proto_smp     proto_snp  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000389      0.000389      0.000389      0.000389   \n",
       "std        0.019711      0.019711      0.019711      0.019711   \n",
       "min        0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "       proto_sprite-rpc     proto_sps     proto_srp     proto_st2  \\\n",
       "count      82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean           0.000389      0.000389      0.000389      0.000401   \n",
       "std            0.019711      0.019711      0.019711      0.020017   \n",
       "min            0.000000      0.000000      0.000000      0.000000   \n",
       "25%            0.000000      0.000000      0.000000      0.000000   \n",
       "50%            0.000000      0.000000      0.000000      0.000000   \n",
       "75%            0.000000      0.000000      0.000000      0.000000   \n",
       "max            1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "          proto_stp  proto_sun-nd   proto_swipe     proto_tcf     proto_tcp  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000389      0.000656      0.000632      0.000389      0.523406   \n",
       "std        0.019711      0.025603      0.025124      0.019711      0.499455   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      1.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000      1.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "         proto_tlsp    proto_tp++  proto_trunk-1  proto_trunk-2     proto_ttp  \\\n",
       "count  82328.000000  82328.000000   82328.000000   82328.000000  82328.000000   \n",
       "mean       0.000389      0.000389       0.000401       0.000401      0.000389   \n",
       "std        0.019711      0.019711       0.020017       0.020017      0.019711   \n",
       "min        0.000000      0.000000       0.000000       0.000000      0.000000   \n",
       "25%        0.000000      0.000000       0.000000       0.000000      0.000000   \n",
       "50%        0.000000      0.000000       0.000000       0.000000      0.000000   \n",
       "75%        0.000000      0.000000       0.000000       0.000000      0.000000   \n",
       "max        1.000000      1.000000       1.000000       1.000000      1.000000   \n",
       "\n",
       "          proto_udp    proto_unas     proto_uti   proto_vines    proto_visa  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.357327      0.042695      0.000389      0.000389      0.000389   \n",
       "std        0.479215      0.202170      0.019711      0.019711      0.019711   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%        1.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "         proto_vmtp    proto_vrrp  proto_wb-expak  proto_wb-mon     proto_wsn  \\\n",
       "count  82328.000000  82328.000000    82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000389      0.000389        0.000389      0.000389      0.000389   \n",
       "std        0.019711      0.019711        0.019711      0.019711      0.019711   \n",
       "min        0.000000      0.000000        0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000        0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000        0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000        0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000        1.000000      1.000000      1.000000   \n",
       "\n",
       "         proto_xnet  proto_xns-idp     proto_xtp    proto_zero     service_-  \\\n",
       "count  82328.000000   82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000401       0.000413      0.000389      0.000389      0.572746   \n",
       "std        0.020017       0.020318      0.019711      0.019711      0.494683   \n",
       "min        0.000000       0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000       0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000       0.000000      0.000000      0.000000      1.000000   \n",
       "75%        0.000000       0.000000      0.000000      0.000000      1.000000   \n",
       "max        1.000000       1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "       service_dhcp   service_dns   service_ftp  service_ftp-data  \\\n",
       "count  82328.000000  82328.000000  82328.000000      82328.000000   \n",
       "mean       0.000316      0.259535      0.018803          0.016957   \n",
       "std        0.017768      0.438382      0.135829          0.129109   \n",
       "min        0.000000      0.000000      0.000000          0.000000   \n",
       "25%        0.000000      0.000000      0.000000          0.000000   \n",
       "50%        0.000000      0.000000      0.000000          0.000000   \n",
       "75%        0.000000      1.000000      0.000000          0.000000   \n",
       "max        1.000000      1.000000      1.000000          1.000000   \n",
       "\n",
       "       service_http   service_irc  service_pop3  service_radius  service_smtp  \\\n",
       "count  82328.000000  82328.000000  82328.000000    82328.000000  82328.000000   \n",
       "mean       0.100658      0.000061      0.005138        0.000109      0.022483   \n",
       "std        0.300878      0.007793      0.071496        0.010455      0.148250   \n",
       "min        0.000000      0.000000      0.000000        0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000        0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000        0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000        0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000        1.000000      1.000000   \n",
       "\n",
       "       service_snmp   service_ssh   service_ssl     state_ACC     state_CLO  \\\n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000   \n",
       "mean       0.000352      0.002478      0.000364      0.000049      0.000012   \n",
       "std        0.018765      0.049717      0.019086      0.006970      0.003485   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "          state_CON     state_FIN     state_INT     state_REQ     state_RST  \n",
       "count  82328.000000  82328.000000  82328.000000  82328.000000  82328.000000  \n",
       "mean       0.084807      0.477784      0.414962      0.022374      0.000012  \n",
       "std        0.278596      0.499509      0.492718      0.147897      0.003485  \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000  \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000  \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000  \n",
       "75%        0.000000      1.000000      1.000000      0.000000      0.000000  \n",
       "max        1.000000      1.000000      1.000000      1.000000      1.000000  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.set_option('display.max_columns', 500)\n",
    "dfcopy.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1073\n",
      "Estimated number of clusters: 1072\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x102d763d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1198604d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn import metrics\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.cluster import AgglomerativeClustering\n",
    "from sklearn.cluster import KMeans\n",
    "from sklearn.cluster import DBSCAN\n",
    "import numpy as np\n",
    "\n",
    "n_clusters = 4\n",
    "data = X\n",
    "#model = KMeans(init='k-means++', n_clusters=n_clusters, n_init=1).fit(data)\n",
    "#model = AgglomerativeClustering(linkage='ward', n_clusters=n_clusters).fit(data)\n",
    "model = DBSCAN(eps=0.15, min_samples=10).fit(data)\n",
    "\n",
    "labels = model.labels_\n",
    "n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0)\n",
    "print( len(set(labels)))\n",
    "print('Estimated number of clusters: %d' % n_clusters_)\n",
    "#print(\"Homogeneity: %0.3f\" % metrics.homogeneity_score(labels_true, labels))\n",
    "#print(\"V-measure: %0.3f\" % metrics.v_measure_score(labels_true, labels))\n",
    "#print(\"Adjusted Rand Index: %0.3f\"\n",
    "#      % metrics.adjusted_rand_score(labels_true, labels))\n",
    "#print(\"Adjusted Mutual Information: %0.3f\"\n",
    "#      % metrics.adjusted_mutual_info_score(labels_true, labels))\n",
    "#print(\"Silhouette Coefficient: %0.3f\"\n",
    "#      % metrics.silhouette_score(data, labels))\n",
    "\n",
    "# Getting memory error with silhouette\n",
    "#silhouette_per_sample = metrics.silhouette_samples(data,labels)\n",
    "\n",
    "# get the middle of each cluster\n",
    "centroids = []\n",
    "for lab in range(0,n_clusters_):\n",
    "\n",
    "    centroids.append( [np.mean(data[np.where(labels==lab),0]), np.mean(data[np.where(labels==lab),1])] )\n",
    "centroids = np.array(centroids)\n",
    "\n",
    "plt.figure()\n",
    "#plt.scatter(data[:, 0], data[:, 1], c=labels,           \n",
    "#                    cmap=plt.cm.spectral, s=5, linewidths=0)\n",
    "\n",
    "if len(centroids)>0:\n",
    "    plt.scatter(centroids[:, 0], centroids[:, 1],\n",
    "                marker='+', s=200, linewidths=3, color='k', zorder=10)  # plot the centroids\n",
    "plt.title('Estimated number of clusters: %d' % n_clusters_)\n",
    "\n",
    "plt.figure()\n",
    "#plt.scatter(data[:, 0], data[:, 1], c=silhouette_per_sample,\n",
    "#                cmap=plt.cm.gray, s=5, linewidths=0)\n",
    "#plt.title('Clusters with silhouette coefficient coloring')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Applications/anaconda/lib/python2.7/site-packages/matplotlib/lines.py:1106: UnicodeWarning: Unicode unequal comparison failed to convert both arguments to Unicode - interpreting them as being unequal\n",
      "  if self._markerfacecolor != fc:\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nkqSgICIiSf8fSJQJhC7WgG4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10d7ec550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "dbsc = DBSCAN(eps = .5, min_samples = 15).fit(X)\n",
    "\n",
    "labels = dbsc.labels_\n",
    "core_samples_mask = np.zeros_like(labels, dtype = bool)\n",
    "core_samples_mask[dbsc.core_sample_indices_] = True\n",
    "\n",
    "# Black removed and is used for noise instead.\n",
    "unique_labels = set(labels)\n",
    "colors = plt.cm.Spectral(np.linspace(0, 1, len(unique_labels)))\n",
    "for k, col in zip(unique_labels, colors):\n",
    "    if k == -1:\n",
    "        # Black used for noise.\n",
    "        col = 'k'\n",
    "\n",
    "    class_member_mask = (labels == k)\n",
    "\n",
    "    xy = X[class_member_mask & core_samples_mask]\n",
    "    plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=col,\n",
    "             markeredgecolor='k', markersize=14)\n",
    "\n",
    "    xy = X[class_member_mask & ~core_samples_mask]\n",
    "    plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=col,\n",
    "             markeredgecolor='k', markersize=6)\n",
    "\n",
    "plt.title('Estimated number of clusters: %d' % n_clusters_)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "'DBSCAN' object has no attribute 'labels'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-17-ed1bbd0d08c0>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      7\u001b[0m         \u001b[0mcls_fam\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDBSCAN\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0meps\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0meps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmin_samples\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmpts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      8\u001b[0m         \u001b[0mcls_fam\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m         \u001b[0mnewfeature_fam\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcls_fam\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabels\u001b[0m \u001b[0;31m# the labels from kmeans clustering\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     11\u001b[0m         \u001b[0;31m#y = dfcopy['label'].values # get the labels we want\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mAttributeError\u001b[0m: 'DBSCAN' object has no attribute 'labels'"
     ]
    }
   ],
   "source": [
    "from sklearn.cluster import DBSCAN\n",
    "\n",
    "params = []\n",
    "for eps in [0.1, 0.125, 0.15]:\n",
    "    for mpts in range(5,8):\n",
    "        # append on the clustering\n",
    "        cls_fam = DBSCAN(eps=eps, min_samples=mpts)\n",
    "        cls_fam.fit(X)\n",
    "        newfeature_fam = cls_fam.labels # the labels from kmeans clustering\n",
    "\n",
    "        #y = dfcopy['label'].values # get the labels we want\n",
    "        X = df[['sttl','ct_dst_sport_ltm', 'ct_src_dport_ltm', 'swin', 'dwin' ]] \n",
    "        X = np.column_stack((X,pd.get_dummies(newfeature_fam)))\n",
    "\n",
    "        acc = cross_val_score(clf,X,y=y,cv=cv)\n",
    "        params.append((n_fare,n_fam,acc.mean()*100,acc.std()*100)) # save state\n",
    "\n",
    "        print eps,mpts,\"Average accuracy = \", acc.mean()*100, \"+-\", acc.std()*100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [Root]",
   "language": "python",
   "name": "Python [Root]"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
